<?php

	require_once('db.Connector.class.php');
	require_once('core/core/debug.class.php');

	class db_query extends db_connector {

		/**
		 * @var string $_query
		 * содержит в себе запрос
		 */
		 private static $_query 	= NULL;

		/**
		  * @var array $_fetch
		  * массив значений
		  */
		 private static $_fetch = array();

		 /**
		   * @var object $_result
		   * выполненный запрос
		   */
		 private static $_result = NULL;


		#	Constructor
		public static function query($query) {
		/**
		 * запросы в БД
		 * @param string $query
		 */
      if (debug::endebug()) {
        print "<p class='debug'>Включен дебаг режим для выполнения запросов</p>";
        debug::d($query);
      }
		 //разбор массива по пробелам
			$t = explode (" ", $query);
			if (strtolower($t[0]) == "select") { //если нулевой элемент массива слово "select" - то выполняется запрос и возвращается результат
			//результат будет в виде массива
			if (debug::endebug()) {
			  print "<p>Первое слово запроса: SELECT</p>";
		  }

				try {
					self::$_result = @mysql_query($query);
					$f = mysql_fetch_array(self::$_result);
					while ($f = mysql_fetch_array(self::$_result)) {
						self::$_fetch[] = $f;
					}
				if (debug::endebug()) {
				  debug::d(self::$_fetch);
				}
				return self::$_fetch;
				} catch (Exception $e) {

					print $e->getFile();
					print $e->getLine();
					print $e->getMessage();
					exit(mysql_error());
				}
			} else if (strtolower($t[0]) == "update" || strtolower($t[0]) == "insert" || strtolower($t[0]) == "delete") {//если нулевой элемент массива "update" или ему подобные - просто выполняется запрос и возвращается true или false
        if (debug::endebug()) {
          print "Первое слово запроса: ".$t[0];
        }
				try {
					self::$_result = @mysql_query($query);
					if (self::$_result) {

						return true;
					} else {

						return false;
					}
				} catch (Exception $e) {

					print $e->getFile();
					print $e->getLine();
					print $e->getMessage();
					exit(mysql_error());
				}
			} else { //в случае ошибки

				exit("Неизвестный запрос");
			}
		}

		public static function issetAccount($account) {
		/**
		 * проверка на существование аккаунта
		 * @param string $account
		 */
			self::$_query = "SELECT * FROM ".Config::$_config['tables']['user_table']." WHERE ".Config::$_config['tables']['names']." = '$login'";
			if (debug::endebug()) {
			  debug::d(self::$_query);
		  }
			$t = mysql_query(self::$_query);
			if (debug::endebug()) {
			  $num = mysql_num_rows($t);
			  debug::d($num);
		  }
			if (mysql_num_rows($t)) {
				return true;
			} else {
				return false;
			}
		}

		public static function getByEmail($email) {
		/**
		 * выборка инфы по мылу
		 */

			self::$_query = "SELECT * FROM ".Config::$_config['tables']['users_table']." WHERE `email` = '$email'";
		  if (debug::endebug()) {
		    debug::d(self::$_query);
		  }
			self::$_fetch = self::query(self::$_query);
			return self::$_fetch;
		}
		###

		public static function getByLogin($login) {
		/**
		 * выборка инфы по логину
		 */
			self::$_query = "SELECT * FROM ".Config::$_config['tables']['users_table']." WHERE ".Config::$_config['tables']['names']." = '$login'";
		  if (debug::endebug()) {
		    debug::d(self::$_query);
		  }
			self::$_fetch = self::query(self::$_query);
			return self::$_fetch;
		}

	}
	###

?>

